/**
 * 
 */
 requirejs.config({
    baseUrl: 'resources/js/lib',
    paths: {
        app : '../app'
    },
    shim : {
    	'jcarousel' : ['jquery'],
    	'slider' : ['jquery'],
    	'leanModal' : ['jquery'],
    	'validate' : ['jquery']
    }
});


require(['jquery', './app/util/WebApi', 'leanModal', 'validate'], function($, WebApi){
	
	function initOrderForm(){
		var requiredMessage = 'Пожалуйста заполните данное поле';
		var $form = $(".orderForm form");
		
		$form.validate({
			 rules : {
			  	name : {
			  		required : true,
			  		minlength: 2,
			  		chars: true
			  	},
			  	phone : {
			  		required : true,
			  		minlength: 7,
			  		maxlength: 9,
			  		digits: true
			  	},
			  	message : {
			  		required : true
			  	}
			  },
			  messages : {
			  	name: {
			  		required : requiredMessage,
			  		minlength : 'Минимальная длина имени 2 символа',
			  		chars : 'Имя должно содержать только буквы'
			  	},
			  	phone : {
			  		required : requiredMessage,
			  		minlength: 'Пожалуйста введите телефон в 9-значном формате. Например, xx1234567, где xx - код оператора',
			  		maxlength: 'Неверный формат номера телефона',
			  		digits: 'Номер телефона может содержать только цифры'
			  	},
			  	message : {
			  		required : requiredMessage
			  	}
			  }
		 });
	}
	
	//move to widgets
	function initModals(){
		var modals = [];
		$('[data-lean]').each(function(index, el){
			var $el = $(el);
			
			var id = $el.data('lean');
			modals.push(id);
			
			$el.attr('href', '#'+id);
			$el.attr('rel', id);
			
			$('#'+id).on('show', function(){
				modals.forEach(function(modalId){
					$('#'+modalId).trigger('hide');
				});
				$el.trigger('click');
			});
			
			$('#'+id).on('hide', function(){
				$('#lean_overlay').hide();
				$(this).hide();
			});
			
			$el.leanModal();
		});
	}

		
	$(function(){
		initModals();
		
		jQuery.validator.addMethod("chars", function(value, element) {
    		return this.optional(element) || /^\D+$/.test(value);
		});
		initOrderForm();
		
		$('.logo').on('click', function(){
			window.location = 'main.html';
		});
		
	});
});